import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.List;
/**
 * Escribe una descrición de la clase Secuestrador aquí.
 * 
 * @autor Andrés Cruz Santiago
 * @versión 22/10/13
 */
public class Secuestrador extends Pirata
{
    
    /**
     * Constructor de Pirata Secuestrador
     * @param unaDirección Dirección del Pirata
     */
    public Secuestrador(int unaDireccion)
    {
        super(unaDireccion);
    }

    /**
     * Act - hace lo que Secuestrador quiere hacer. Este método se llama "cuando quiera" o whenever
     * los botones 'Actuar or 'Ejecutar' son presionados en el entorno.
     */
    public void act() 
    {
        super.act();
    }    

    /**
     * Ataca al Chapulín Colorado
     */
    public void ataca()
    {
        persigue();
    }

    /**
     * Persigue al Chapulín Colorado, cuando éste esta cercano a él
     */
    public void persigue()
    {        
        int rango=0;
        int desplazamiento=0;

        switch(dir)
        {
            case IZQ:
            desplazamiento=-1;
            rango=120;
            break;
            case DER:
            desplazamiento=1; 
            rango=120;
            break;
        }

        List aux = this.getObjectsInRange(rango,Chapulin.class);
        //List aux = this.getObjectsAtOffset(rango, 0, Chapulin.class);
        if(aux.size()!=0) 
        {
            if((((Actor)(aux.get(0))).getY() < (this.getY() + this.getImage().getHeight())) || (((Actor)(aux.get(0))).getY() < (this.getY() + this.getImage().getHeight())))
            {
                this.setLocation(this.getX()+desplazamiento,this.getY());
                if(((Actor)(aux.get(0))).getX() >= this.getX()) 
                {
                    if(this.getDireccion() == Direccion.IZQ)
                        this.getImage().mirrorHorizontally();
                    dir=Direccion.DER;
                }
                else
                {
                    if(this.getDireccion() == Direccion.DER)
                        this.getImage().mirrorHorizontally();
                    dir=Direccion.IZQ;
                }
            }
        }
    } 
}
